﻿using DOHS_WM6.Classes;
using System;
using System.Windows.Forms;
using DOHS_WM6.Enumeradores;
using System.Collections.Generic;

namespace DOHS_WM6.Fichas
{
    public partial class formCondicaoDentaria3 : FormDOHS
    {
        #region Propriedades

        private Dictionary<string, TipoCampo> Campos = new Dictionary<string, TipoCampo>();

        #endregion

        #region Construtor
        public formCondicaoDentaria3()
        {
            InitializeComponent();
            Campos.Add("txtCoroa38", TipoCampo.Coroa);
            Campos.Add("txtCoroa37", TipoCampo.Coroa);
            Campos.Add("txtCoroa36", TipoCampo.Coroa);
            Campos.Add("txtCoroa35", TipoCampo.Coroa);
            Campos.Add("txtCoroa34", TipoCampo.Coroa);
            Campos.Add("txtCoroa33", TipoCampo.Coroa);
            Campos.Add("txtCoroa32", TipoCampo.Coroa);
            Campos.Add("txtCoroa31", TipoCampo.Coroa);
            Campos.Add("txtRaiz38", TipoCampo.Raiz);
            Campos.Add("txtRaiz37", TipoCampo.Raiz);
            Campos.Add("txtRaiz36", TipoCampo.Raiz);
            Campos.Add("txtRaiz35", TipoCampo.Raiz);
            Campos.Add("txtRaiz34", TipoCampo.Raiz);
            Campos.Add("txtRaiz33", TipoCampo.Raiz);
            Campos.Add("txtRaiz32", TipoCampo.Raiz);
            Campos.Add("txtRaiz31", TipoCampo.Raiz);
            Campos.Add("txtTratamento38", TipoCampo.Tratamento);
            Campos.Add("txtTratamento37", TipoCampo.Tratamento);
            Campos.Add("txtTratamento36", TipoCampo.Tratamento);
            Campos.Add("txtTratamento35", TipoCampo.Tratamento);
            Campos.Add("txtTratamento34", TipoCampo.Tratamento);
            Campos.Add("txtTratamento33", TipoCampo.Tratamento);
            Campos.Add("txtTratamento32", TipoCampo.Tratamento);
            Campos.Add("txtTratamento31", TipoCampo.Tratamento);
        }
        #endregion

        #region Metodos

        private void HabilitaBotoes(bool ativo)
        {
            btn0.Enabled = ativo;
            btn1.Enabled = ativo;
            btn2.Enabled = ativo;
            btn3.Enabled = ativo;
            btn4.Enabled = ativo;
            btn5.Enabled = ativo;
            btn6.Enabled = ativo;
            btn7.Enabled = ativo;
            btn8.Enabled = ativo;
            btn9.Enabled = ativo;
            btnA.Enabled = ativo;
            btnB.Enabled = ativo;
            btnC.Enabled = ativo;
            btnD.Enabled = ativo;
            btnE.Enabled = ativo;
            btnF.Enabled = ativo;
            btnG.Enabled = ativo;
            btnP.Enabled = ativo;
            btnT.Enabled = ativo;
        }

        private void ValidacaoCodigoRaiz()
        {
            string codigoCoroa = string.Empty;

            switch (this.txtFocus.Name)
            {
                case "txtRaiz38":
                    codigoCoroa = txtCoroa38.Text;
                    break;
                case "txtRaiz37":
                    codigoCoroa = txtCoroa37.Text;
                    break;
                case "txtRaiz36":
                    codigoCoroa = txtCoroa36.Text;
                    break;
                case "txtRaiz35":
                    codigoCoroa = txtCoroa35.Text;
                    break;
                case "txtRaiz34":
                    codigoCoroa = txtCoroa34.Text;
                    break;
                case "txtRaiz33":
                    codigoCoroa = txtCoroa33.Text;
                    break;
                case "txtRaiz32":
                    codigoCoroa = txtCoroa32.Text;
                    break;
                case "txtRaiz31":
                    codigoCoroa = txtCoroa31.Text;
                    break;
            }

            if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
        }

        private void ValidacaoCodigoTratamento()
        {
            string codigoCoroa = string.Empty;
            string codigoRaiz = string.Empty;

            switch (txtFocus.Name)
            {
                case "txtTratamento38":
                    codigoCoroa = txtCoroa38.Text;
                    codigoRaiz = txtRaiz38.Text;
                    break;
                case "txtTratamento37":
                    codigoCoroa = txtCoroa37.Text;
                    codigoRaiz = txtRaiz37.Text;
                    break;
                case "txtTratamento36":
                    codigoCoroa = txtCoroa36.Text;
                    codigoRaiz = txtRaiz36.Text;
                    break;
                case "txtTratamento35":
                    codigoCoroa = txtCoroa35.Text;
                    codigoRaiz = txtRaiz35.Text;
                    break;
                case "txtTratamento34":
                    codigoCoroa = txtCoroa34.Text;
                    codigoRaiz = txtRaiz34.Text;
                    break;
                case "txtTratamento33":
                    codigoCoroa = txtCoroa33.Text;
                    codigoRaiz = txtRaiz33.Text;
                    break;
                case "txtTratamento32":
                    codigoCoroa = txtCoroa32.Text;
                    codigoRaiz = txtRaiz32.Text;
                    break;
                case "txtTratamento31":
                    codigoCoroa = txtCoroa31.Text;
                    codigoRaiz = txtRaiz31.Text;
                    break;
            }

            if (codigoCoroa == "1" || codigoCoroa == "2" || codigoCoroa == "B" || codigoCoroa == "C")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "3" || codigoCoroa == "D")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0" || codigoRaiz == "8")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else
                    btnP.Enabled = true;
            }
            else if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "6" || codigoCoroa == "F")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn0.Enabled = true;
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn3.Enabled = true;
                    btn4.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btn9.Enabled = true;
                    btnA.Enabled = true;
                    btnB.Enabled = true;
                    btnC.Enabled = true;
                    btnD.Enabled = true;
                    btnE.Enabled = true;
                    btnF.Enabled = true;
                    btnP.Enabled = true;
                }
            }
            else if (codigoCoroa == "7" || codigoCoroa == "G")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn4.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
                btnA.Enabled = true;
                btnB.Enabled = true;
                btnC.Enabled = true;
                btnD.Enabled = true;
                btnE.Enabled = true;
                btnF.Enabled = true;
                btnP.Enabled = true;
            }
        }

        #endregion

        #region Eventos
        private void btn_Click(object sender, EventArgs e)
        {
            base.Button_Click(sender, e);
        }

        private void txt_GotFocus(object sender, EventArgs e)
        {
            base.TextBoxGotFocus(sender, e);

            if (Campos[this.txtFocus.Name] == TipoCampo.Coroa)
            {
                this.HabilitaBotoes(true);
                this.btnP.Enabled = false;
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Raiz)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoRaiz();
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Tratamento)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoTratamento();
            }
        }

        private void btnLimpar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Tem certeza que deseja Limpar esta Ficha?",
                                "Atenção",
                                MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Question,
                                MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                txtCoroa38.Text = "0";
                txtCoroa37.Text = "0";
                txtCoroa36.Text = "0";
                txtCoroa35.Text = "0";
                txtCoroa34.Text = "0";
                txtCoroa33.Text = "0";
                txtCoroa32.Text = "0";
                txtCoroa31.Text = "0";
                txtRaiz38.Text = "0";
                txtRaiz37.Text = "0";
                txtRaiz36.Text = "0";
                txtRaiz35.Text = "0";
                txtRaiz34.Text = "0";
                txtRaiz33.Text = "0";
                txtRaiz32.Text = "0";
                txtRaiz31.Text = "0";
                txtTratamento38.Text = "0";
                txtTratamento37.Text = "0";
                txtTratamento36.Text = "0";
                txtTratamento35.Text = "0";
                txtTratamento34.Text = "0";
                txtTratamento33.Text = "0";
                txtTratamento32.Text = "0";
                txtTratamento31.Text = "0";
            }
        }

        private void btnProximo_Click(object sender, EventArgs e)
        {
            //Dente 31_71
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Coroa = txtCoroa31.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Raiz = txtRaiz31.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Tratamento = txtTratamento31.Text;
            //Dente 32_72
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Coroa = txtCoroa32.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Raiz = txtRaiz32.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Tratamento = txtTratamento32.Text;
            //Dente 33_73
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Coroa = txtCoroa33.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Raiz = txtRaiz33.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Tratamento = txtTratamento33.Text;
            //Dente 34_74
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Coroa = txtCoroa34.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Raiz = txtRaiz34.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Tratamento = txtTratamento34.Text;
            //Dente 35_75
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Coroa = txtCoroa35.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Raiz = txtRaiz35.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Tratamento = txtTratamento35.Text;
            //Dente 36
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Coroa = txtCoroa36.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Raiz = txtRaiz36.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Tratamento = txtTratamento36.Text;
            //Dente 37
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Coroa = txtCoroa37.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Raiz = txtRaiz37.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Tratamento = txtTratamento37.Text;
            //Dente 38
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Coroa = txtCoroa38.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Raiz = txtRaiz38.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Tratamento = txtTratamento38.Text;

            ControleFormularios.MostraProximaFicha();
        }

        private void btnVoltar_Click(object sender, EventArgs e)
        {
            ControleFormularios.MostraFichaAnterior();
        }

        public override void MostraFormulario()
        {
            txtCoroa38.Focus();

            //Dente 31_71
            txtCoroa31.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Coroa;
            txtRaiz31.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Raiz;
            txtTratamento31.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_31_71.Tratamento;
            //Dente 32_72
            txtCoroa32.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Coroa;
            txtRaiz32.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Raiz;
            txtTratamento32.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_32_72.Tratamento;
            //Dente 33_73
            txtCoroa33.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Coroa;
            txtRaiz33.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Raiz;
            txtTratamento33.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_33_73.Tratamento;
            //Dente 34_74
            txtCoroa34.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Coroa;
            txtRaiz34.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Raiz;
            txtTratamento34.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_34_74.Tratamento;
            //Dente 35_75
            txtCoroa35.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Coroa;
            txtRaiz35.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Raiz;
            txtTratamento35.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_35_75.Tratamento;
            //Dente 36
            txtCoroa37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Coroa;
            txtRaiz37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Raiz;
            txtTratamento37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_36.Tratamento;
            //Dente 37
            txtCoroa37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Coroa;
            txtRaiz37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Raiz;
            txtTratamento37.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_37.Tratamento;
            //Dente 38
            txtCoroa38.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Coroa;
            txtRaiz38.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Raiz;
            txtTratamento38.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_38.Tratamento;

            base.MostraFormulario();
        }
        #endregion  
    }
}